home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / akcl / akcl.lha / akcl / V / c / predicate.c < prev    next >
C/C++ Source or Header  |  1989-09-10  |  5KB  |  310 lines

  1. Changes file for /usr/local/src/kcl/./c/predicate.c
  2. Created on Sun Sep 10 12:41:47 1989
  3. Usage \n@s[Original text\n@s|Replacement Text\n@s]
  4. See the file rascal.ics.utexas.edu:/usr2/ftp/merge.c
  5. for a program to merge change files.  Anything not between
  6. "\n@s[" and  "\n@s]" is a simply a comment.
  7. This file was constructed using emacs and  merge.el
  8. Enhancements Copyright (c) W. Schelter All rights reserved.
  9.    by (Bill Schelter)  wfs@carl.ma.utexas.edu 
  10.  
  11.  
  12. ****Change:(orig (239 239 c))
  13. @s[    if (t == t_cfun || t == t_cclosure)
  14.  
  15. @s|    if (t == t_cfun || t == t_cclosure || t == t_sfun || t == t_gfun
  16.         || t == t_vfun)
  17.  
  18. @s]
  19.  
  20.  
  21. ****Change:(orig (263 263 c))
  22. @s[        type_of(vs_base[0]) == t_cclosure)
  23.  
  24. @s|        type_of(vs_base[0]) == t_cclosure  ||
  25.         type_of(vs_base[0]) == t_sfun   ||
  26.         type_of(vs_base[0]) == t_gfun ||
  27.         type_of(vs_base[0]) == t_vfun
  28.         
  29.         
  30.         )
  31.  
  32. @s]
  33.  
  34.  
  35. ****Change:(orig (363 363 a))
  36. @s[    if (eql(vs_base[0], vs_base[1]))
  37.         vs_base[0] = Ct;
  38.     else
  39.         vs_base[0] = Cnil;
  40.     vs_pop;
  41. }
  42.  
  43. bool
  44.  
  45. @s|    if (eql(vs_base[0], vs_base[1]))
  46.         vs_base[0] = Ct;
  47.     else
  48.         vs_base[0] = Cnil;
  49.     vs_pop;
  50. }
  51.  
  52. bool
  53.  
  54.  
  55. @s]
  56.  
  57.  
  58. ****Change:(orig (365 365 c))
  59. @s[equal(x, y)
  60. object x, y;
  61.  
  62. @s|equal(x, y)
  63. register object x;
  64. #ifdef UNIX   /* in non unix case cs_check want's an address */
  65. register
  66. #endif
  67. object y;
  68.  
  69. @s]
  70.  
  71.  
  72. ****Change:(orig (367 367 c))
  73. @s[{
  74.     enum type t;
  75.  
  76. @s|{
  77. register enum type t;
  78.  
  79. @s]
  80.  
  81.  
  82. ****Change:(orig (369 369 c))
  83. @s[
  84.     cs_check(x);
  85.  
  86. @s|
  87.     cs_check(y);
  88.  
  89. @s]
  90.  
  91.  
  92. ****Change:(orig (374 374 c))
  93. @s[        return(FALSE);
  94.     if (eql(x, y))
  95.  
  96. @s|        return(FALSE);
  97.     if (x==y)
  98.  
  99. @s]
  100.  
  101.  
  102. ****Change:(orig (385 385 c))
  103. @s[        goto BEGIN;
  104.  
  105.     case t_string:
  106.  
  107. @s|        goto BEGIN;
  108.  
  109.     case t_symbol: return FALSE;
  110.     case t_vector: case t_array: return FALSE;
  111.  
  112.     case t_fixnum :
  113.     return(fix(x)==fix(y));
  114.     case t_shortfloat:
  115.     return(x->SF.SFVAL==y->SF.SFVAL);
  116.     case t_longfloat:
  117.     return(x->LF.LFVAL==y->LF.LFVAL);
  118.  
  119.      case t_string:
  120.  
  121. @s]
  122.  
  123.  
  124. ****Change:(orig (386 386 a))
  125. @s[        return(string_eq(x, y));
  126.  
  127. @s|        return(string_eq(x, y));
  128.     
  129.  
  130. @s]
  131.  
  132.  
  133. ****Change:(orig (387 387 a))
  134. @s[
  135.  
  136. @s|
  137.  
  138.  
  139. @s]
  140.  
  141.  
  142. ****Change:(orig (406 407 c))
  143. @s[
  144.         if (x->str.str_name != y->str.str_name)
  145.  
  146. @s|        if (x->str.str_def != y->str.str_def)
  147.  
  148. @s]
  149.  
  150.  
  151. ****Change:(orig (409 411 c))
  152. @s[        for (i = 0;  i < x->str.str_length;  i++)
  153.             if (!equal(x->str.str_self[i], y->str.str_self[i]))
  154.                 return(FALSE);
  155.  
  156. @s|        {int leng= S_DATA(x->str.str_def)->length;
  157.          unsigned char *s_type= & SLOT_TYPE(x->str.str_def,0);
  158.          unsigned short *s_pos= & SLOT_POS(x->str.str_def,0);
  159.         for (i = 0;  i < leng;  i++,s_pos++)
  160.          {if (s_type[i]==0)
  161.             {if (!equal(STREF(object,x,*s_pos),STREF(object,y,*s_pos)))
  162.                return FALSE;}
  163.           else
  164.            if (! (*s_pos & (sizeof(object)-1)))
  165.             switch(s_type[i]){
  166.             case aet_lf:
  167.               if(STREF(longfloat,x,*s_pos) != STREF(longfloat,y,*s_pos))
  168.             return(FALSE);
  169.               break;
  170.             case aet_sf:
  171.               if(STREF(shortfloat,x,*s_pos)!=STREF(shortfloat,y,*s_pos))
  172.             return(FALSE);
  173.               break;
  174.             default:
  175.               if(STREF(int,x,*s_pos)!=STREF(int,y,*s_pos))
  176.             return(FALSE);
  177.               break;}}
  178.  
  179. @s]
  180.  
  181.  
  182. ****Change:(orig (413 413 c))
  183. @s[        return(TRUE);
  184.     }
  185.  
  186. @s|        return(TRUE);
  187.     }}
  188.  
  189. @s]
  190.  
  191.  
  192. ****Change:(orig (437 437 c))
  193. @s[            return(FALSE);
  194.  
  195.     }
  196.     return(FALSE);
  197.  
  198. @s|            return(FALSE);
  199.  
  200.     }
  201.     return(eql(x,y));
  202.  
  203. @s]
  204.  
  205.  
  206. ****Change:(orig (488 489 c))
  207. @s[        if (ty == t_array && x->a.a_rank != y->a.a_rank)
  208.             goto ARRAY;
  209.  
  210. @s|        if (ty == t_array && x->a.a_rank == y->a.a_rank)
  211.           { if (x->a.a_rank > 1)
  212.              {int i=0;
  213.               for (i=0; i< x->a.a_rank; i++)
  214.             {if (x->a.a_dims[i]!=y->a.a_dims[i])
  215.                return(FALSE);}}
  216.             goto ARRAY;}
  217.  
  218. @s]
  219.  
  220.  
  221. ****Change:(orig (507 507 c))
  222. @s[        goto BEGIN;
  223.  
  224.     case t_structure:
  225.     {
  226.  
  227. @s|        goto BEGIN;
  228.  
  229.     case t_structure:
  230.         {
  231.  
  232. @s]
  233.  
  234.  
  235. ****Change:(orig (509 510 c))
  236. @s[
  237.         if (x->str.str_name != y->str.str_name)
  238.  
  239. @s|        if (x->str.str_def != y->str.str_def)
  240.  
  241. @s]
  242.  
  243.  
  244. ****Change:(orig (512 514 c))
  245. @s[        for (i = 0;  i < x->str.str_length;  i++)
  246.             if (!equalp(x->str.str_self[i], y->str.str_self[i]))
  247.                 return(FALSE);
  248.  
  249. @s|        {int leng= S_DATA(x->str.str_def)->length;
  250.          unsigned char *s_type= & SLOT_TYPE(x->str.str_def,0);
  251.          unsigned short *s_pos= & SLOT_POS(x->str.str_def,0);
  252.         for (i = 0;  i < leng;  i++,s_pos++)
  253.          {if (s_type[i]==0)
  254.            {if (!equalp(STREF(object,x,*s_pos),STREF(object,y,*s_pos)))
  255.                return FALSE;}
  256.           else
  257.            if (! (*s_pos & (sizeof(object)-1)))
  258.             switch(s_type[i]){
  259.             case aet_lf:
  260.              if(STREF(longfloat,x,*s_pos) != STREF(longfloat,y,*s_pos))
  261.             return(FALSE);
  262.               break;
  263.             case aet_sf:
  264.              if(STREF(shortfloat,x,*s_pos)!=STREF(shortfloat,y,*s_pos))
  265.             return(FALSE);
  266.               break;
  267.             default:
  268.               if(STREF(int,x,*s_pos)!=STREF(int,y,*s_pos))
  269.             return(FALSE);
  270.               break;}}
  271.  
  272. @s]
  273.  
  274.  
  275. ****Change:(orig (516 516 c))
  276. @s[        return(TRUE);
  277.     }
  278.  
  279. @s|        return(TRUE);
  280.     }}
  281.  
  282. @s]
  283.  
  284.  
  285. ****Change:(orig (529 529 a))
  286. @s[        if (x->a.a_dim != y->a.a_dim)
  287.             return(FALSE);
  288.  
  289. @s|        if (x->a.a_dim != y->a.a_dim)
  290.             return(FALSE);
  291.         j=x->a.a_dim;
  292.         if (tx!=t_array)
  293.           /*So these are both t_vector,t_string,or t_bitvector
  294.             and may have fill-pointers so limit J must be decreased*/
  295.           {if (x->v.v_hasfillp && (j > x->v.v_fillp))
  296.              j=x->v.v_fillp;
  297.            if (y->v.v_hasfillp && (j > y->v.v_fillp))
  298.              j=y->v.v_hasfillp;}
  299.  
  300. @s]
  301.  
  302.  
  303. ****Change:(orig (532 532 c))
  304. @s[        for (i = 0, j = x->a.a_dim;  i < j;  i++) {
  305.  
  306. @s|        for (i = 0;  i < j;  i++) {
  307.  
  308. @s]
  309.  
  310.